function R = romberg(a, b, n, f)
%Functia care calculeaza matricea cu valorile integralelor. 
%
%	Date de intrare:
%		- a -> capatul stang al integralei;
%		- b -> capatul drept al integralei;
%		- n -> jumatatea numarului de intervade de diviziune( se iau 2*n astfel de intervale);
%		- f -> functia a carei integrala se cere de calculat.
%
%	Date de iesire:
%		- R -> matricea cu valorile integralelor.


h = b - a;
R(1,1) = h * ( f(a) + f(b) ) / 2;
l = 1;
for i = 2 : n
	s = R(i - 1, 1);
	for k = 1 : l
		s = s + h * f( a + ( k - 0.5 ) * h );
	endfor
	R(i,1) = s / 2;
	l = 2 * l;
	p = 1;
	for j = 2 : i
		p = 4 * p;
		R(i,j)=(p * R(i,j - 1) - R(i - 1, j - 1)) / (p - 1);
	endfor
	h = h / 2;
endfor

endfunction
